创建表
CREATE TABLE customers (
customerid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name CHAR(50) NOT NULL,
address CHAR(100) NOT NULL,
city CHAR(30) NOT NULL
);
CREATE TABLE orders (
orderid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
customerid INT UNSIGNED NOT NULL,
amount FLOAT(6, 2),
date DATE NOT NULL
);
CREATE TABLE books (
isbn CHAR(13) NOT NULL PRIMARY KEY,
author CHAR(50),
title CHAR(100),
price FLOAT(4, 2)
);
CREATE TABLE order_items (
orderid INT UNSIGNED NOT NULL,
isbn CHAR(13) NOT NULL,
quantity TINYINT UNSIGNED,
PRIMARY KEY(orderid, isbn)
);
CREATE TABLE book_reviews (
isbn CHAR(13) NOT NULL PRIMARY KEY,
review TEXT
);
上面的例子就差不多了,一点一点说明:
NOT NULL
NOT NULL
的意思是表中所有行的此属性都必须有一个值,不能为空。 如果不写 NOT NULL
的话,默认的情况下是 NULL
,即可以为空。 注意,声明列为 NOT NULL
是一个小小的优化措施,因为 MySQL 可以省去多余的空间和时间。
AUTO_INCREMENT
可以在整数列中使用,如果插入的时候将该字段设置为空,那么会自动产生一个唯一的并且比当前列最大值大的数,也就是说,当不指定的时候,数字会依次递增。 如果设置了 AUTO_INCREMENT
并且 NOT NULL
,当还是空表的时候,第一个插入并指定 NULL
的会被设置为 1 。
PRIMARY KEY
列名称后面的 PRIMARY KEY 表示该列是表的主键,本列中的输入必须唯一, MySQL 将自动索引该列。 注意每个 TABLE 最多写一个 PRIMARY KEY ,如果需要写多个,就得像上面的 order_items
表那样写:
PRIMARY KEY(orderid, isbn)
MySQL将根据这两列来创建索引。
插入数据
比如需要在 customers
表中插入一个记录:
INSERT INTO customers VALUES
( NULL, 'Julie Smith', '25 Oak Street', 'Airport West');
上面的语句是将指定的值按出现顺序添加到表中的列,如果只针对一些列添加内容,可以在语句中列部分给出制定的列:
INSERT INTO customers(name, city) VALUES
( 'Melissa Jones', 'Nar Nar Goon North');
也可以这么添加,效果和上面相同:
INSERT INTO customers
SET name = 'Michael Archer',
address = '12 Adderley Avenue',
city = 'Leeton';
更新数据库记录
如果希望将所有图书的价格提高10%,可以这样做:
UPDATE books
SET price = price * 1.1;
如果希望修改一行,可以如下操作:
UPDATE customers
SET address = '250 Olsens Road'
WHERE customerid = 4;
可以用 LIMIT
限制受影响的行数。
删除数据库中的记录
DELETE FROM customers
WHERE customerid = 5;
LIMIT
子句可以限制实际删除的最大行数,一般和 ORDER BY
结合使用。 如果需要删除整个表,可以用 DROP TABLE
语句来完成:
DROP TABLE table;
如果需要删除整个数据库,可以用 DROP DATABASE
语句:
DROP DATABASE database;
改变数据库中表的结构
太繁琐了……挑点比较有用的…… 当特定的列空间不够大时,可以改变该列的数据类型:
ALTER TABLE customers
MODIFY name CHAR(70) NOT NULL;
当需要增加一列的时候:
ALTER TABLE orders
ADD tax FLOAT(6,2) AFTER amount;
当需要删除一列的时候:
ALTER TABLE orders
DROP tax;
嗯……好了,可以开始看看PHP访问MySQL了……